Ещё больше строковых оптимизаций

В продолжение своей предыдущей статьи о строках (напоминаю, это была текстовая версия доклада на конференции JPoint-2020) решил дописать ещё одну заметку со строковыми оптимизациями, обнаруженными уже после вёрстки презентации (первые две есть на видео в самом конце, показывал их прямо из «Идеи»).

Снова StringBuilder.append(char)

На сцене снова «Спринг», а именно o.s.u.StringUtils.deleteAny(String, String):

// org.springframework.util.StringUtils  public static String deleteAny(String inString, String charsToDelete) {   if (!hasLength(inString) || !hasLength(charsToDelete)) {     return inString;   }    StringBuilder sb = new StringBuilder(inString.length());   for (int i = 0; i < inString.length(); i++) {     char c = inString.charAt(i);     if (charsToDelete.indexOf(c) == -1) {       sb.append(c);     }   }   return sb.toString(); }

В разделе «Склейка: если всё-таки нужно» рассматривая StringBuilder.append(char) я отметил невозможность оптимизации

Читать далее